﻿/*======================================================================
== Copyright : BlueCurve (c)
== Licence   : Gnu/GPL v2.x
== Author    : Teddy Albina
== Email     : bluecurveteam@gmail.com
== Web site  : http://www.codeplex.com/BlueCurve
========================================================================*/
using System.Collections;

namespace BlueCurve.Common.Drawing
{
    /// <summary>
    /// Class d'énumeration es données EXIF
    /// </summary>
    public class EXIFextractorEnumerator : IEnumerator
    {
        /// <summary>
        /// Table de hashage contenant les métadonnées
        /// </summary>
        private Hashtable exifTable { get; set; }
        /// <summary>
        /// Enumerateur
        /// </summary>
        private IDictionaryEnumerator index { get; set; }

        /// <summary>
        /// Contructeur
        /// </summary>
        /// <param name="exif">Table de hashage des métadonnées</param>
        internal EXIFextractorEnumerator(Hashtable exif)
        {
            this.exifTable = exif;
            this.Reset();
            index = exif.GetEnumerator();
        }

        #region IEnumerator Members

        /// <summary>
        /// Reinitialise l'enumerateur
        /// </summary>
        public void Reset()
        {
            this.index = null;
        }

        /// <summary>
        /// Retourne l'objet de la position actuelle
        /// de l'enumerateur
        /// </summary>
        public object Current
        {
            get
            {
                return (new System.Web.UI.Pair(this.index.Key, this.index.Value));
            }
        }

        /// <summary>
        /// Parcours l'enumerateur
        /// </summary>
        /// <returns>bool</returns>
        public bool MoveNext()
        {
            if (index != null && index.MoveNext())
                return true;
            else
                return false;
        }

        #endregion
    }
}
